The known cron utility of the known UNIX operating system allows computer processes to be started and executed at times scheduled using the known crontab utility of the UNIX operating system. Accordingly, a user can configure a computer system which operates using the UNIX operating system to execute computer processes at a time when processing resources of the computer system would ordinarily be idle. Thus, the processing resource requirements of such computer processes can easily be met during off peak hours, and such computer processes do not compete for processing resources during busy, peak use times.
The ability to shift processing times of certain computer processes from busy, peak use times to off peak times is important for efficient allocation of processing resources. Some large computer processes require substantial processing resources to perform important computer processing functions. For example, backing up a computer system's persistent storage, e.g., mass storage media such as magnetic and/or optical storage media, requires substantial processing resources. Other examples of large computer processes which require substantial processing resources include complex system modeling in scientific research, complex signal processing particularly large collections of digital signals such as filtering seismic surveys for petroleum exploration, and generation of complex three-dimensional graphical images in computer generation of animated images.
Executing such large computer processes during regular business hours reduces the amount of computer processing resources available for processes executed by users of the computer system during the day to do the day's work. In addition, since such large computer processes compete with other processes during business hours, such large computer processes take longer to complete. By scheduling large computer processes for execution during off-peak hours, e.g., at night and on weekends, computer processes executed by users during the day to perform the day's work execute more quickly and increase productivity during business hours. In addition, the large computer processes execute with less competition for processing resources and therefore execute more quickly during off-peak hours.
Scheduling automated execution of computer processes has another advantage, namely, a user can configure the computer system to run time sensitive computer process at specific times. For example, a user can configure a computer process which updates a particular database to execute every hour during peak usage hours such that the database is always stores information which is current within one hour. Similarly, a user can configure a computer process to save and store backup copies of work in progress periodically, e.g., every ten minutes.
Passive terminals which connect users to a multi-user computer system are currently being replaced with network computers. A network computer (NC) is a fully-functioning computer system without permanent storage and which is connected to a server computer system through a computer network. A network computer executes a computer process by first downloading the computer instructions of the computer process from the server computer system and then executes the computer process as if the computer process was loaded from permanent storage which is local to the network computer. Network computers allow processing to be distributed to individual workers' desktops while data are kept in a centralized database on the server computer system. However, during off-peak time when users are not using the network computers, each network computer on a particular network represents additional unused computer processing resources. The cron and crontab utilities described above provide no mechanism by which such network computers can schedule and execute computer processes during off-peak hours or at any scheduled time to achieve the benefits of such scheduling described above.
What is needed is a mechanism by which a network computer can schedule automatic execution of computer processes which reside on a server computer system.